package com.hxzy.system.service;

import com.hxzy.common.core.domain.entity.Menu;
import com.hxzy.system.vo.MenuTreeVo;
import com.hxzy.system.vo.RouterVo;

import java.util.List;
import java.util.Set;

public interface MenuService extends CommonService<Menu,Long> {
    /**
     * 根据所有的菜单信息
     */
    List<Menu> selectAllMenu();

    /**
     * 根据用户ID查询权限(sys_user,sys_role,sys_menu连在一起)
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    Set<String> selectMenuPermsByUserId(Long userId);

    /**
     * 构造树型节点
     * @param userId
     * @return
     */
    List<MenuTreeVo> selectMenuTreeByUserId(Long userId);

    /**
     * 构建成首页菜单需要的格式
     * @param menus
     * @return
     */
    List<RouterVo> buildMenus(List<MenuTreeVo> menus);
}
